package com.szrt.java.day20170103.demo11;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.junit.Test;

/**
 * 不管是运行时异常 还是编译异常我们有2种处理方法
 * 
 * 1:把狼打死   try catch finally   finally可有可以无    高级    
 * 
 * 2:自己不处理，叫别人来打死    throws                  新手
 * 		让调用者来处理这个异常
 * 
 * 你们公司是如何处理异常
 * 	1: 架构师将所有的异常统一处理。这时候开发者自己不能对异常进行处理。只能抛出异常。  好      框架组专门写一般的程序员考虑不到或者考虑不周全的问题。
 * 	      华为对于异常处理规范  40多条
 *  2: 如果没有统一的异常处理机制。那么在任何地方都需要进行try catch finally     不好
 * @author zsrt
 *
 */
public class ExceptionTest {
	
	@Test
	public  void  method01(){
		//运行时异常
		int a=0;
		//编辑异常
		InputStream is=null;
		try {
			a = 10/10;
			is = new FileInputStream("aa.txt");
		}catch (FileNotFoundException e) {
			e.printStackTrace();
		}catch (ArithmeticException e1) {
			System.out.println("出现了算术异常....");
			e1.printStackTrace();
		}finally{
			try {
				if(is !=null){
					is.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println(a);
	}
	
	
	
	@Test
	public  void  method02(){
		try {
			int jg = div(10,0);
			System.out.println(jg);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	
	public  int div(int x, int y) throws Exception{
		
		return x/y;
	}
	
	public int xx(){
		int a =10/0;
		System.out.println(a);
		return 0;
	}
	
	
	@Test
	public void yyy(){
		
		String a ="a10";
		String b ="20";
		System.out.println(a+b);
		
		//运行时异常在编译的时候可以不进行显示的处理
		int aa =Integer.parseInt(a);
		int bb =Integer.parseInt(b);
		System.out.println(aa+bb);
		
	}
	
	

}
